Logic gates are the basic building blocks of computing machines. Each individual gate is a mechanism with a certain number of inputs and outputs, each of which is a binary bit. The outputs are defined entirely by the inputs. The function performed by a gate is usually one of the four boolean logical operations AND, OR, XOR, & NOT, although a number of more arcane types of gates exist (such as the Toffoli gate.)